package com.sayice.gomoku.dao;

import com.sayice.gomoku.pojo.User;

/**
 * 用户数据库操作
 */
public interface UserDao {
    /**
     * 添加用户
     * @param user 用户
     * @return 返回 sql 语句影响的行数
     */
    int add(User user);
    
    /**
     * 更新用户当前使用棋盘
     * @param userId 用户编号
     * @param boardId 棋盘编号
     * @return 返回 sql 语句影响的行数
     */
    int updateBoardId(int userId, int boardId);
    
    /**
     * 增加用户对局数
     * @param id 用户编号
     * @return 返回 sql 语句影响的行数
     */
    int addPlayCount(int id);
    
    /**
     * 增加用户获胜数
     * @param id 用户编号
     * @return 返回 sql 语句影响的行数
     */
    int addWinCount(int id);
    
    /**
     * 根据用户编号查询用户
     * @param id 用户编号
     * @return 返回 User 对象，返回 null 表示该用户不存在
     */
    User queryById(int id);
    
    /**
     * 根据用户名查询用户
     * @param name 用户名
     * @return 返回 User 对象，返回 null 表示该用户不存在
     */
    User queryByName(String name);
    
    /**
     * 根据用户名和密码查询用户
     * @param name 用户名
     * @param password 密码
     * @return 返回 User 对象，返回 null 表示该用户不存在
     */
    User queryByNameAndPassword(String name, String password);
}
